﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Progresoft.Scheduler.RemoteInterface.DataAccess;

namespace Progresoft.Scheduler.RemoteInterface.Api
{
	/// <summary>
	/// Даннные задачи для дэшборда -- информация о задаче и последнем запуске.
	/// </summary>
	[Serializable]
	public class ScheduledTaskHealth
	{
		/// <summary>
		/// Статус задачи, запускаемой по расписанию.
		/// </summary>
		public ScheduledTaskStatus Status
		{
			get;
			set;
		}
		/// <summary>
		/// Название задачи
		/// </summary>
		public string TaskName
		{
			get;
			set;
		}
		/// <summary>
		/// Система, к которой относится задача
		/// </summary>
		public string SystemName
		{
			get;
			set;
		}
		/// <summary>
		/// Ключ задачи
		/// </summary>
		public string Key
		{
			get;
			set;
		}
		/// <summary>
		/// Время последнего запуска.
		/// </summary>
		public DateTime? StartDate
		{
			get;
			set;
		}
		/// <summary>
		/// Время успешного завершения.
		/// </summary>
		public DateTime? SuccessfullyFinishedAt
		{
			get;
			set;
		}
		/// <summary>
		/// Задачу можно остановить.
		/// </summary>
		public bool CanStop
		{
			get { return (Status == ScheduledTaskStatus.Delayed || Status == ScheduledTaskStatus.Running); }
		}

		/// <summary>
		/// Идентификатор последнего лога. Может быть null, если лога нет.
		/// </summary>
		public int? LogID
		{
			get;
			set;
		}
	}
}
